// UVa12118 Inspector’s Dilemma
// 陈锋
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXV = 1000 + 4;
vector<int> G[MAXV];
int V, E, T, VIS[MAXV];
void dfs(int u, int& cnt) {
  VIS[u] = 1, cnt += G[u].size() % 2;
  for (int v : G[u])
    // int v = G[u][vi];
    if (!VIS[v]) dfs(v, cnt);
}
int main() {
  for (int k = 1; scanf("%d%d%d", &V, &E, &T) == 3 && (V || E || T); k++) {
    for (int i = 0; i < V; ++i) G[i].clear();
    fill_n(VIS, MAXV, 0);
    for (int i = 0, a, b; i < E; ++i) {
      scanf("%d%d", &a, &b), --a, --b;
      G[a].push_back(b), G[b].push_back(a);
    }
    int nc = 0, ans = 0;  // 连通分量个数，需要增加的边数
    for (int u = 0; u < V; ++u)
      if (!G[u].empty() && !VIS[u]) {
        int p = 0;  // 奇度数点的个数
        dfs(u, p);
        if (p > 2) ans += (p - 2) / 2;  // 增加(p-2)/2条边才能保证存在欧拉道路
        nc++;
      }
    printf("Case %d: %d\n", k, T * (E + ans + max(0, nc - 1)));
  }
  return 0;
}
/*
算法分析请参考: 《入门经典-习题与解答》习题6-14
*/
// Accepted 30ms 908 C++5.3.0 2020-12-14 16:02:44 25846227